Q: 現在作成しているアプリケーションで、Rendezvous を使用してサービスのアドバタイズを行っています。 Mac OS X 10.2 ではすべてが順調に動作しますが、Mac OS X 10.3 では -65540 エラーが発生してサービスの登録に失敗します。 何が間違っているのでしょうか? A: Mac OS X 10.3 から、mDNSResponder では正しいフォーマットで Rendezvous サービスのタイプを指定しなければならなくなりました。 サービスタイプは次に示す形式であることが必要です。
_applicationprotocol._transportprotocol
現在のところ、"_transportprotocol" は "_tcp" または "_udp" のいずれかである必要があります。 "applicationprotocol" は、文字、数字、ハイフンだけで構成する必要があり、開始と終了には、文字または数字を使用する必要があります。 たとえば、Hypertext Transport Protocol のサービスタイプは "_http._tcp" になります。
IANA の規約では、"applicationprotocol" は 14 文字以下に制限されています。 mDNSResponder にはこの制限はありませんが、アップルでは、IANA や DNS-SD Web サイトに登録できるように、"applicationprotocol" を 14 文字以下にすることを強くお薦めします。
サービスタイプの形式が正しくない場合は、リスト 1 のようなメッセージがシステムログ(/var/log/system.log)に出力されます。
リスト 1. system.log メッセージ
| Sep 10 19:58:02 ice-cube mDNSResponder[257]: 9987: DNSServiceRegister
("Test","._#$@._tpd.", "", 80) failed: Bad Name (-65540)
Sep 10 19:58:14 ice-cube mDNSResponder[257]: ConstructServiceName: Invalid
service application protocol name: Test..local.
|
[2004 年 3 月 19 日]
|